package juanma;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JTextPane;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;

public class WinEditarItem extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField txtNombre;
	private JTextField txtPrecio;
	private JTextField txtPeso;

	public WinEditarItem(final Item item, final JTable tablaItems) {
		setTitle("Editar " + item.nombre);
		setBounds(100, 100, 312, 287);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
		panel.setBorder(new EmptyBorder(5, 5, 5, 5));
		panel.setBounds(10, 11, 289, 275);
		contentPane.add(panel);
		
		JLabel label = new JLabel("NOMBRE");
		label.setFont(new Font("Tahoma", Font.PLAIN, 10));
		label.setBounds(0, 0, 102, 14);
		panel.add(label);
		
		txtNombre = new JTextField();
		txtNombre.setColumns(10);
		txtNombre.setBounds(0, 12, 130, 20);
		panel.add(txtNombre);
		
		txtPrecio = new JTextField();
		txtPrecio.setColumns(10);
		txtPrecio.setBounds(141, 107, 46, 20);
		panel.add(txtPrecio);
		
		txtPeso = new JTextField();
		txtPeso.setColumns(10);
		txtPeso.setBounds(197, 107, 46, 20);
		panel.add(txtPeso);
		
		JLabel label_1 = new JLabel("PRECIO");
		label_1.setFont(new Font("Tahoma", Font.PLAIN, 10));
		label_1.setBounds(141, 94, 46, 14);
		panel.add(label_1);
		
		JLabel label_2 = new JLabel("PESO");
		label_2.setFont(new Font("Tahoma", Font.PLAIN, 10));
		label_2.setBounds(197, 94, 46, 14);
		panel.add(label_2);
		
		final JCheckBox chkboxMagico = new JCheckBox("M\u00E1gico");
		chkboxMagico.setBounds(146, 11, 97, 23);
		panel.add(chkboxMagico);
		
		final JCheckBox chkboxEquipar = new JCheckBox("Equipar");
		chkboxEquipar.setBounds(146, 37, 97, 23);
		panel.add(chkboxEquipar);
		
		final JTextPane txtpnNotas = new JTextPane();
		txtpnNotas.setBounds(0, 60, 130, 67);
		panel.add(txtpnNotas);
		
		JLabel label_3 = new JLabel("NOTAS");
		label_3.setFont(new Font("Tahoma", Font.PLAIN, 10));
		label_3.setBounds(0, 46, 102, 14);
		panel.add(label_3);
		
		final JTextPane txtpnMagia = new JTextPane();
		txtpnMagia.setBounds(0, 151, 130, 67);
		panel.add(txtpnMagia);
		
		JLabel lblMagia = new JLabel("MAGIA");
		lblMagia.setFont(new Font("Tahoma", Font.PLAIN, 10));
		lblMagia.setBounds(0, 138, 102, 14);
		panel.add(lblMagia);
		
		final JSpinner spinCantidad = new JSpinner();
		spinCantidad.setModel(new SpinnerNumberModel(new Integer(1), new Integer(0), null, new Integer(1)));
		spinCantidad.setFont(new Font("Tahoma", Font.PLAIN, 10));
		spinCantidad.setBounds(141, 151, 46, 20);
		panel.add(spinCantidad);
		
		JLabel label_5 = new JLabel("CANTIDAD");
		label_5.setFont(new Font("Tahoma", Font.PLAIN, 10));
		label_5.setBounds(141, 138, 63, 14);
		panel.add(label_5);
		
		//Inicializa el panel con los valores presentes
		chkboxEquipar.setSelected(item.equipado);
		chkboxMagico.setSelected(item.magico);
		txtpnMagia.setText(item.magia);
		txtpnNotas.setText(item.notas);
		txtPeso.setText(String.valueOf(item.getPeso()));
		spinCantidad.getModel().setValue(item.getCantidad());
		txtPrecio.setText(String.valueOf(item.getPrecio()));
		txtNombre.setText(item.nombre);
		
		
		JButton btnEditar = new JButton("Editar");
		btnEditar.setBounds(139, 195, 130, 23);
		panel.add(btnEditar);
		btnEditar.addActionListener(new ActionListener(){
			//Edita el item
			@Override
			public void actionPerformed(ActionEvent e) {
				item.equipado = chkboxEquipar.isSelected();
				item.magico = chkboxMagico.isSelected();
				item.magia = txtpnMagia.getText();
				item.notas = txtpnNotas.getText();
				item.setPeso(Double.parseDouble(txtPeso.getText()));
				item.setCantidad((Integer)spinCantidad.getValue());
				item.setPrecio(Double.parseDouble(txtPrecio.getText()));
				item.nombre = txtNombre.getText();
				
				int fila = tablaItems.getSelectedRow();
				tablaItems.getModel().setValueAt(item.getCantidad(), fila, 0);
				tablaItems.getModel().setValueAt(item.nombre, fila, 1);
				
				dispose();
			}
		});
	}
	
	public static void main(final Item itemEditar, final JTable tablaItems) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					WinEditarItem frame = new WinEditarItem(itemEditar, tablaItems);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}
